package cn.smile.business.basic;

import cn.smile.bean.dto.basic.BasicItemCountDTO;
import cn.smile.bean.dto.basic.BillBasicItemDTO;
import cn.smile.bean.entity.basic.BillBasicItem;
import cn.smile.bean.form.basic.bill.billBasicItemAddForm;
import cn.smile.commons.domain.IBaseService;

import java.util.List;
import java.util.Map;

public interface IBillBasicItemService extends IBaseService<BillBasicItem> {

    /**
     * 保存消费账单基础项目
     *
     * @param form 基础项目参数
     * @return 保存结果
     */
    Boolean saveBillBasicItem(billBasicItemAddForm form);

    /**
     * 根据账单ID查询基础项目
     *
     * @param billIds 账单ID集合
     * @return 查询结果集合
     */
    Map<String, List<BillBasicItemDTO>> getBasicByBillIds(List<String> billIds);

    /**
     * 根据账单ID删除基础项目
     *
     * @param billId 账单ID
     * @return 删除结果
     */
    Boolean delByBillId(String billId);

    /**
     * 根据店员ID统计项目完成数量
     *
     * @param userIds    店员ID集合
     * @param countMonth 统计月份
     * @return 统计结果
     */
    Map<String, List<BasicItemCountDTO>> countItemByUser(List<String> userIds, String countMonth);
}
